python爬取高德POI并生成shp(关键字搜索/多边形搜索)

您所在的位置:网站首页 高德 区域内搜索 python爬取高德POI并生成shp(关键字搜索/多边形搜索)

python爬取高德POI并生成shp(关键字搜索/多边形搜索)

2023-10-29 07:13| 来源: 网络整理| 查看: 265

高德开放平台提供了搜索POI功能,可以调用API来获取兴趣点的地理位置信息。本篇尝试用python获取高德POI并生成GIS常用shp文件。需要用的库有urllib3(或者request),json,以及用来生成shp的pandas和geopandas。

1. 申请高德开放平台Web服务API的key,个人开发者注意配额管理别超了额度和并发量,可以氪金增加额度。

2. 每次请求API最多返回对应区域内1000个POI信息,为了获取区域所有的POI,一般要划分区域或者划分多边形来获取。如果获取POI的数量大概不多,1000个都不到,按县来进行关键字搜索即可;如果数量比较多,需要用多边形搜索。

3. 平台还提供了POI分类编码和城市编码,用来选择类别和区域,用这个编码搜索会更准确。

1 关键字搜索

找出想要的POI编码,例如'140100'即为博物馆的POI。把想要的区域做成一个列表,例如['440303','440304']即为深圳罗湖区和福田区。另外还需要注意的是获取的POI坐标系是GCJ02,可以自行转换坐标系。

# get_Amap_POI('高德key','POI分类编码',[城市编码的列表],生成shp的路径名称) def get_Amap_POI(key, types, location_list, shpname): poi_dict = {'id':[],'name':[],'type':[],'address':[],'lon':[],'lat':[]} print ('getting data...') for location in location_list: # count: number of POI in the page; count, page_index = 1,1 while count != 0: parameters = "key={}&keywords={}&city={}&citylimit=true&output=JSON&page={}".format(key,types,location,page_index) url = "https://restapi.amap.com/v3/place/text?" + parameters http = urllib3.PoolManager() response = http.request('GET', url, timeout = 5.0) jsonData = json.loads(response.data.


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3